package com.ruoyi.fly.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.sql.Timestamp;

@Data
@NoArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "ServerOrder", description = "服务订单表")
@AllArgsConstructor
public class ServerOrder extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 服务订单表主键
     */
    @ApiModelProperty(value = "服务订单表主键")
    private String id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @Excel(name = "用户id")
    private String mid;

    /**
     * 服务id
     */
    @Excel(name = "服务id")
    @ApiModelProperty(value = "服务id")
    private String serverId;

    /**
     * 支付方式:1-微信支付 2-余额支付
     */
    @Excel(name = "支付方式:1-微信支付 2-余额支付")
    @ApiModelProperty(value = "支付方式:1-微信支付 2-余额支付")
    private Long payChannel;

    /**
     * 支付状态:1.未支付 2.已支付 3.已取消
     */
    @Excel(name = "支付状态:1.未支付 2.已支付 3.已取消")
    @ApiModelProperty(value = "支付状态:1.未支付 2.已支付 3.已取消")
    private Long payStatus;

    /**
     * 付款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "付款时间")
    private Timestamp payTime;

    /**
     * 服务方式:1.上门、2.到店)
     */
    @Excel(name = "服务方式:1.上门、2.到店)")
    @ApiModelProperty(value = "服务方式:1.上门、2.到店)")
    private Long serverChannel;

    /**
     * 到店店铺id
     */
    @Excel(name = "到店店铺id")
    @ApiModelProperty(value = "到店店铺id")
    private String storeId;

    /**
     * 上门的理疗车id
     */
    @Excel(name = "上门的理疗车id")
    @ApiModelProperty(value = "上门的理疗车id")
    private String vehiclesId;

    /**
     * 上门所选的用户地址信息id
     */
    @Excel(name = "上门所选的用户地址信息id")
    @ApiModelProperty(value = "上门所选的用户地址信息id")
    private Long addressId;

    /**
     * 用户选择预约时间上门和到店
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用户选择预约时间上门和到店", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "用户选择预约时间上门和到店")
    private Timestamp bookingTime;

    /**
     * 服务状态：1.待选择 2.待确认 3.待服务 4.进行中 5.已完成 6.已签字 7.已评论
     */
    @Excel(name = "服务状态：1.待选择 2.待确认 3.待服务 4.进行中 5.已完成 6.已签字 7.已评论")
    @ApiModelProperty(value = "服务状态：1.待选择 2.待确认 3.待服务 4.进行中 5.已完成 6.已签字 7.已评论")
    private String serverStatus;

    /**
     * 订单码(核销用)
     */
    @Excel(name = "订单码(核销用)")
    @ApiModelProperty(value = "订单码(核销用)")
    private String orderCode;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String orderRamark;

    /**
     * 当前订单支付的总金额
     */
    @Excel(name = "当前订单支付的总金额")
    @ApiModelProperty(value = "当前订单支付的总金额")
    private BigDecimal costs;

    /**
     * 身体状况
     */
    @Excel(name = "身体状况")
    @ApiModelProperty(value = "身体状况")
    private String bodyStatus;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private String createUser;

    /**
     * 最后修改人
     */
    @Excel(name = "最后修改人")
    @ApiModelProperty(value = "最后修改人")
    private String updateUser;

    /**
     * 逻辑删除 1-删除 0-未删除
     */
    @ApiModelProperty(value = "逻辑删除 1-删除 0-未删除")
    @Excel(name = "逻辑删除 1-删除 0-未删除")
    private Long isDelete;

    /**
     * 预支付id
     */
    @Excel(name = "预支付id")
    @ApiModelProperty(value = "预支付id")
    private String prepayId;

    /**
     * 支付单号
     */
    @Excel(name = "支付单号")
    @ApiModelProperty(value = "支付单号")
    private String payNum;

    /**
     * 用户签名
     */
    @Excel(name = "用户签名")
    @ApiModelProperty(value = "用户签名")
    private String autograph;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(shape = JsonFormat.Shape.NUMBER, pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(shape = JsonFormat.Shape.NUMBER, pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp updateTime;
}
